add mobench support to ProveKit v1#430
Open
dcbuild3r wants to merge 1489 commits into
Open
Conversation
Update whir dependency from PR 217 (ec295ced) to PR 225 (d67518d1) which introduces an ownership-based prove() API with Cow parameters. Adapt provekit to the new API: wrap vectors/witnesses/evaluations in Cow::Owned, implement the new as_any() LinearForm requirement, and replace the removed Domain type in gnark_config with GeneralEvaluationDomain. Fix a pre-existing bug in PrefixCovector::mle_evaluate that used the wrong variable ordering for whir's big-endian MLE convention. The leading point variables select upper/lower array halves, so the (1-p) zero-padding factor must apply to point[..r] (head) with the prefix MLE evaluated at point[r..] (tail), not the reverse.
…cross-evals, PrefixCovector tests - Remove R1CSSolver trait, convert test_witness_satisfaction to free fn (#3) - Make w2_layers compression conditional on has_challenges (#4) - Parallelize cross-evaluation dot products with rayon::join (~12% prove speedup) (#6) - Add debug_assert in PrefixCovector::accumulate (#11) - Add PrefixCovector unit tests: size, mle_evaluate, accumulate, prefix=logical (#2) - Fix clippy: &mut Vec -> &mut [] in solve_witness_vec
Reduce proving memory
…256 compression functions
…optimize protocol
…ale TODO, use explicit type on flat
feat: port provekit to zkWHIR 2.0
…ng phantom witness allocation
feat: embed blinding polynomial G in w1 zero-padding
…hash values and improve cost estimation
Optimizations: ROM Fusion, Spread Multiset Fusion & Constant Spread Path
Port to whir b3c86d7 with sound parameters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
provespanAndroid mobench fix note
The earlier failing run was https://github.com/worldfnd/provekit/actions/runs/26002840796. The missing Vivo Y21 monolithic cell did not recover a BrowserStack session payload or
summary.json; available artifacts only show the BrowserStack fetch timeout after 7200s for buildb1ebace919a1b8cad3861313180ac9a18a7e461d. I grepped the recovered Android artifacts and job log forlowmemorykiller,Process * was killed,oom_reaper,SIGKILL, and abnormal signal text; there was no hit because BrowserStack did not return the killed session logs for that cell.Before/failure memory from that run:
What changed:
profile_phase("prove")wraps only the prover entry point. Previouslyprepared.clone()ran insideprofile_phase("prove"), so clone cost and peak memory were charged to proving.failure.jsonnow records attempts, fetch timeout seconds, build id, and any LMK/OOM/SIGKILL lines recovered from attempt/device logs.After numbers: pending the fresh BrowserStack rerun on this commit.
Validation
cargo fmt --allcargo test -p bench-mobile --libcargo test -p bench-mobile --test examples_smokecargo test -p bench-mobile --test passport_smokecargo check -p provekit-ffi --target aarch64-linux-androidwith NDK 26.1aarch64-linux-android34-clangruby -e 'require "yaml"; YAML.load_file(".github/workflows/mobile-bench-reusable.yml")'git diff --check